51 関西 Debian 勉強会資料
関西 Debian 勉強会担当者 佐々木・倉敷・のがた
2011 09 25
51 関西 Debian 勉強会 2011 09
1 Introduction
Debian JP
関西 Debian 勉強会は Debian GNU/Linux のさまざまなトピ (新しいパケージ, Debian 特有の機能の仕組,
Debian 界隈で起こった出来事, などなど) について話し合う会です.
目的として次の三つを考えています.
ML や掲示板ではなく, 直接顔を合わせる事での情報交換の促進
定期的に集まれる場所
資料の作成
それでは, 楽しい一時をお楽しみ下さい.
1
関西Debian 勉強会
目次
1 Introduction 1
2 最近の Debian 関係のイベント報告 3
3 事前課題 4
4 vcs-buildpackage bzr の場合 6
5 vcs-buildpackage Git の場合 (again) 13
6 今後の予定 19
7 メモ 20
2
51 関西 Debian 勉強会 2011 09
2 最近の Debian 関係のイベン
ト報告
Debian JP
2.1 50 回関西 Debian 勉強会
50 回目の関西 Debian 勉強会は 2011 8 28 () に京都で開催されました。
いつもと違った雰囲気のよい会場でしたね、また利用させて頂きたい会場です
2.2 80 回東京エリア Debian 勉強会
9 月の東京エリ Debian 勉強会は通常の勉強会ではなく 2011 9 17 ()18 () の二日間に渡って
の温泉合宿でした。
黙黙と開発をするストイックな開発合宿だったようです
3
51 関西 Debian 勉強会 2011 09
3 事前課題
Debian JP
今回は以下の事前課題を設定しました。
1. Debian パッケージの作成手順を復習しておいてください。先月 (2011 08 ) の勉強会資料が参考になるで
しょう
2. bzr,git-buildpackage パッケージがインストールされた環境を用意しておいてください。
参加者の皆さんによる回答は以下の通りです
3.1 山下尊也
(無回答)
3.2 Takuspeed83
(無回答)
3.3 Y.YATSUO
(無回答)
3.4 木下
1. ここしばらく立て込んでいまして・
すみません。時間取れていません。
2. 遅いノートですが入れときます
自宅マシンにログインしようかな・
3.5 清野陽一
(無回答)
3.6 山田 洋平
1. 勉強しておきます。先月は出来たので、大丈夫な、はず
2. 完了。あ、最初 sid 環境に chroot するの忘れて親環境にインストールしてました...
4
3.7 kozo2
1. 先月の勉強会資料をやり直すことで復習しました。
2. 以下 VirtualBox ゲスト OSsid の端末出力です
root@debian:~# lsb_release -a |grep Description
No LSB modules are available.
Description: Debian GNU/Linux unstable (sid)
root@debian:~# aptitude show bzr-buildpackage
No current or candidate version found for bzr-buildpackage
Package: bzr-buildpackage
State: not a real package
Provided by: bzr-builddeb
root@debian:~# aptitude show bzr-builddeb git-buildpackage |egrep ’Package|State’
Package: bzr-builddeb
State: installed
Package: git-buildpackage
State: installed
3.8 yabuki@netfort.gr.jp
ちょっと、遅くなるかも知れませんが行きますので。
3.9 かわだてつたろう
資料読み直して用意しておきます
3.10 川江
1. これはしときます
2. できるかな?
3.11 佐々木洋平
というわけで、先々月 (?) git-buildpackage 編のおさらいから始めてみます。
3.12 よしだともひろ
1. 先月頂いた資料読んでおきます
2. bzr-buildpackage git-buildpackage は入れました。
5
51 関西 Debian 勉強会 2011 09
4 vcs-buildpackage bzrの場合
山下尊也
4.1 はじめに
あなたは、vcs 使っていますか?分散型バージョン管理システムが注目されるようになった頃からLinux カー
ネルなどでも用いられており、開発スピードの早い Git を使っている方が多い気がします。はてなブックマーク
*
1
どを見ていても、上位の記事になるのは Git ばかりで、Bazaar 使いとしてはとても悲しくなります
私は、日々様々なファイルを扱っていますが、それらは Bazaar(bzr:バザー) を使って管理しています
*
2
。そのため
か、パッケージも Bazaar 用いて管理していましたが、最初のうちは適当に自分のリポジトリを作成し管理してい
ました。無理やりパッケージの管理をしていたため、他の手法を探していると、bzr-builddeb があったので、それ以
bzr-builddeb を使って管理しています
4.2 bzr-builddeb の基本
まずは、パッケージのインストールをしてみましょう
$ sudo aptitude update
$ sudo aptitude install bzr-builddeb
lenny では 0.95squeeze では 2.4.2sid では 2.7.8 がインストールされます
$ dpkg -L bzr-builddeb | grep bin
/usr/bin
/usr/bin/bzr-buildpackage
$ bzr-buildpackage --help
Purpose: Builds a Debian package from a branch.
Usage: bzr builddeb [BRANCH_OR_BUILD_OPTIONS...]
Options:
...[snip]
ヘルプに書かれている通り、ブランチから Debian パッケージを生成することを目的としたコマンドです
*
1
http://b.hatena.ne.jp/
*
2
Bazaar を用いるようになった理由は、ファイル名が Unicode 文字列で管理されていたからです
6
$ bzr help commands
[snip] 一部抜粋
bd-do Run a command in an exported package, copying the result
back. [builddeb]
builddeb Builds a Debian package from a branch. [builddeb]
Aliases: bd
dep3-patch Format the changes in a branch as a DEP-3 patch. [builddeb]
dh-make Helps you create a new package. [builddeb]
Aliases: dh_make
import-dsc Import a series of source packages. [builddeb]
import-upstream Imports an upstream tarball. [builddeb]
mark-uploaded Mark that this branch has been uploaded, prior to pushing it.
[builddeb]
merge-package Merges source packaging branch into target packaging branch.
[builddeb]
merge-upstream Merges a new upstream version into the current branch.
[builddeb]
Aliases: mu
bzr は他の VCS を使ったことがある人であれば、一通り使えると思いますbzr help commands でコマンドの一
覧を見ることができるので、分からないときは活用してください。一覧の中で [builddeb] bzr-buildpackag で追
加されたコマンドです
4.3 bzr-builddeb で選択できるモード
bzr-builddeb では、さまざまなモードがあらかじめ用意されています。パッケージのメンテナが使いたいスタイル
に応じて、モードを選択することができます。図 1 に示すのは、メンテナのスタイルに応じたモードの選択肢です
Q1 管理したいパッケージは native package
*
3
ですか?
Q2 あなたがアップストリームメンテナーか?
Q3 debian/ ディレクトリ以下だけを保管したいのか?
Q4 パッケージ作業するときに、ブランチを分けて作業したいか?
1 bzr-builddeb でのモードの選択
*
3
Debian 固有のパッケー。または、ローカでの使用のただけに、メンテンスしているースファイルを含パッケージ。例えば
debootstrap debian-el,debian-archive-keyring など
7
4.4 Normal mode を用いたパッケージの管理
4.4.1 新規にパッケージを作る場合
bzr-builddeb を用いて、パッケージを新規で作成する際は、bzr dh-make を用います
*
4
$ mkdir ~/src-debian-normal
$ bzr init-repo auto-install-el
$ cd auto-install-el
$ bzr init unstable
$ cd unstable
$ bzr dh-make auto-install-el 1.53 ../auto-install-el_1.53.orig.tar.gz
Fetching tarball
Looking for a way to retrieve the upstream tarball
Upstream tarball already exists in build directory, using that
Committing to: /tmp/test/auto-install-el/unstable/
added auto-install.el
Committed revision 1.
Type of package: single binary, indep binary, multiple binary, library,
kernel module, kernel patch?
[s/i/m/l/k/n] s
Maintainer name : Takaya Yamashita
Email-Address : takaya@debian.or.jp
Date : Sun, 25 Sep 2011 01:01:31 +0900
Package Name : auto-install-el
Version : 1.53
License : blank
Type of Package : Single
Hit <enter> to confirm:
Skipping creating ../auto-install-el_1.53.orig.tar.gz because it already
exists
Currently there is no top level Makefile. This may require additional
tuning.
Done. Please edit the files in the debian/ subdirectory now. You should
also
check that the auto-install-el Makefiles install into $DESTDIR and not
in / .
Package prepared in /tmp/test/auto-install-el/unstable
$ ls
auto-install.el debian/
*
4
ニュア、開 dh-make debian ディレファイbzr
dh-make で大丈夫でしょう
8
$ ls -1 debian
README.Debian
README.source
auto-install-el.cron.d.ex
auto-install-el.default.ex
auto-install-el.doc-base.EX
changelog
compat
control
copyright
docs
emacsen-install.ex
emacsen-remove.ex
emacsen-startup.ex
init.d.ex
manpage.1.ex
manpage.sgml.ex
manpage.xml.ex
menu.ex
postinst.ex
postrm.ex
preinst.ex
prerm.ex
rules*
source/
watch.ex
$ bzr status
added:
debian/
debian/README.Debian
debian/README.source
debian/changelog
debian/compat
debian/control
debian/copyright
debian/docs
debian/rules
debian/source/
unknown:
debian/auto-install-el.cron.d.ex
debian/auto-install-el.default.ex
debian/auto-install-el.doc-base.EX
debian/emacsen-install.ex
debian/emacsen-remove.ex
debian/emacsen-startup.ex
debian/init.d.ex
debian/manpage.1.ex
debian/manpage.sgml.ex
debian/manpage.xml.ex
debian/menu.ex
debian/postinst.ex
debian/postrm.ex
debian/preinst.ex
debian/prerm.ex
debian/watch.ex
debian/source/format
$ bzr log -v --include-merges
------------------------------------------------------------
revno: 1
tags: upstream-1.53
committer: Takaya Yamashita <yamashita@takaya.biz>
branch nick: unstable
timestamp: Sun 2011-09-25 01:01:30 +0900
message: Import upstream version 1.53
added: auto-install.el
$ edit
$ edit
$ edit
[snip]
$ bzr builddeb
9
4.4.2 既存のパッケージを bzr-builddeb で管理する場合
$ mkdir ~/src-debian-normal
$ bzr init-repo auto-install-el
$ cd auto-install-el
$ apt-get source auto-install-el
$ bzr init unstable
$ cd unstable
$ bzr import-dsc ../*.dsc
Committing to: /home/takaya/src-debian-normal/auto-install-el/tmpriXU3G/upstream/
added auto-install.el
Committed revision 1.
All changes applied successfully.
Committing to: /home/takaya/src-debian-normal/auto-install-el/unstable/
added .pc
added debian
added .pc/.quilt_patches
added .pc/.quilt_series
added .pc/.version
added debian/README.Debian
added debian/changelog
added debian/compat
added debian/control
added debian/copyright
added debian/dirs
added debian/emacsen-install
added debian/emacsen-remove
added debian/emacsen-startup
added debian/rules
added debian/source
added debian/source/format
Committed revision 2.
$ bzr log -v --include-merges
------------------------------------------------------------
revno: 2
tags: 1.48-1
fixes bug(s): http://bugs.debian.org/586177
author: Takaya Yamashita <takaya@debian.or.jp>
committer: Takaya Yamashita <yamashita@takaya.biz>
branch nick: unstable
timestamp: Tue 2010-06-15 23:16:42 +0900
message:
Initial release (Closes: #586177)
added:
.pc/
.pc/.quilt_patches
.pc/.quilt_series
.pc/.version
debian/
debian/README.Debian
debian/changelog
debian/compat
debian/control
debian/copyright
debian/dirs
debian/emacsen-install
debian/emacsen-remove
debian/emacsen-startup
debian/rules
debian/source/
debian/source/format
------------------------------------------------------------
revno: 1
tags: upstream-1.48
author: Takaya Yamashita <takaya@debian.or.jp>
committer: Takaya Yamashita <yamashita@takaya.biz>
branch nick: upstream
timestamp: Tue 2010-06-15 23:16:42 +0900
message:
Import upstream version 1.48
added:
auto-install.el
$ bzr merge-upstream ../auto-install-el-1.53.orig.tar.gz --version 1.53
--distribution debian --package auto-install-el
下記でも大丈夫
$ bzr merge-upstream ../auto-install-el_1.53.orig.tar.gz --version 1.53
Using distribution unstable
Using version string 1.53.
Committing to: /home/takaya/src-debian-normal/auto-install-el/tmpNlFI08/upstream/
modified auto-install.el
Committed revision 2.
All changes applied successfully.
The new upstream version has been imported.
You should now review the changes and then commit.
bzr merge-upstream を用、アップスムのファイルポーます。拡張子
10
.tar.gz, .tar, .tar.bz2, .tar.lzma, .tgz, .zip に対応しています
*
5
また、ワーキングツリーの変更を行わずにアップストリームの変更をインポートする bzr import-upstream もあ
ります
4.5 Merge mode を用いたパッケージの管理
Merge mode Normal mode に比べて少し複雑な作業が必要になってきます。コマンドなども整備されていませ
んが、debian ディレクトリ以下だけをリポジトリに管理することができる利点があります。また、共同で作業すると
きなどは、ファイルサイズを抑えることができます
$ mkdir ~/src-debian/
$ bzr init-repo ~/src-debian/twittering-mode
$ cd ~/src-debian/twittering-mode
$ bzr init unstable
$ cd unstable
$ mkdir .bzr-builddeb/
$ echo -e ’[BUILDDEB]\nmerge = True’ > .bzr-builddeb/default.conf
$ bzr add .bzr-builddeb/default.conf
本来、アップストリームから新しいバージョンが出た際は、bzr merge-upstream を用いますが、Merge mo de
は対応していないため
*
6
、バージョン番号を指定してあげる必要があります
*
7
$ dch -v 2.0.0+git20110905-1
[snip]
$ bzr builddeb
$ ../dput debexpo twittering-mode_2.0.0+git20110905-1_amd64.changes
$ bzr ci -m "New upstream version 2.0.0+git20110905"
処理を見ると、~/src-debian/twittering-mode/build-area にて debuild の作業が行われています
また、backports 向けにパッケージを作る際は、backports 専用の branch を作成して、そこで作業しています
$ cd ~/src-debian/twittering-mode
$ bzr branch unstable bpo
$ cd bpo
$ bzr bd-do "dch --bpo"
[snip]
$ bzr builddeb
[snip]
$ ls -1 ../*bpo*
../auto-install-el_1.53-1~bpo60+1.debian.tar.gz
../auto-install-el_1.53-1~bpo60+1.dsc
../auto-install-el_1.53-1~bpo60+1_all.deb
../auto-install-el_1.53-1~bpo60+1_amd64.build
../auto-install-el_1.53-1~bpo60+1_amd64.changes
既存のパッケージを Merge mode に移行する場合は、リポジトリを作成しdebian ディレクトリをコピーすれば
良いでしょう
$ mkdir ~/src-debian/
$ bzr init-repo ~/src-debian/twittering-mode
$ cd ~/src-debian/twittering-mode
$ apt-get source twittering-mode
$ bzr init unstable
$ cp -r twittering-mode-2.0.0+git20110905/debian ~/src-debian/twittering-mode/unstable
$ cd unstable
$ mkdir .bzr-builddeb/
$ echo -e ’[BUILDDEB]\nmerge = True’ > .bzr-builddeb/default.conf
$ bzr add .bzr-builddeb/default.conf
$ bzr add .
$ bzr ci -m "initial commit"
$ bzr builddeb
bzr bd-do を使うと、build-area に一時的にコピーを行い、dpatch などのコマンドを使用することができるよう
*
5
LZMA/XZ/Lzip の対応については、Bug 499484 wishlist として報告されています。これらについては、アップストリームの trunk
では改善しているようです
*
6
changelog に対象としたリリースを反映させることができない? bzr merge-upstream –distribution を使えばいけるかも-
*
7
debian ディレクトリを別の場所で管理しているため、Bazaar の履歴が受け継がれません。
11
です
*
8
4.6 管理していく上でのヒント
普段は GPG 署名をせずに、必要なときだけパッケージに署名を行なっている人も多いと思います--の後にコマ
ンドを足すことによって、builder にオプションを渡すことができます
$ debuild -rfakeroot -us -uc
$ bzr bd -- -us -uc
*
8
未検証
12
51 関西 Debian 勉強会 2011 09
5 vcs-buildpackage Gitの場合
(again)
佐々木洋平さん
はじめに
話の枕
山下さん bzr 引いき、ここで佐々木が Git を用いて Debian パッケジを成す場合につてま
めます。前々回 (2011 06 , 48 ) git-buildpackage ついて (簡単) 触れましたが、その後ちゃん
と調べたら、幾つかコマンドが新しく追加されていたりしました。ですので、前々回の復習も兼ねて「Git 使って
Debian パッケージを作成/管理するお話」をしてみたいと思います
前提とする知識と目的
とはいえ、パッケージング全てについて触れる事はできませんので、ここでは
source package についてのある程度の知識
Git に関して, 特に tag branch についてのある程度の知識
があることを前提としています。最後に参考文献していますので、適宜参照して下さい、もしくは質問して下さい。
パッケージ作成作業 (復習)
通常、パッケージ作成は
1. upstream のソースを取得
2. (場合によっては) non-free な部分を除いたりして、
3. ./debian ディレクトリ以下を作成/更新して、
4. 場合によっては upstream のソースにパッチを当てて、
5. ソース/バイナリ パッケージをビルド
という事を行ないます。これらの作業を VCS で管理します
典型的なリポジトリレイアウト
前回お話した git-import-dsc で既存のソースパッケージ import したりdebcheckout Git で管理されて
いるパッケージを checkout すると、多くの場合、リポジトリは以下の様になります
13
$ git branch
* master <-- debian/ 入りのフルソース
pristine-tar <-- orig.tar.{gz,bz2} のバイナリデルタ
upstream <-- debian/ 無し (upstream) のソース
ここで git-buildpackage を実行すると、パッケージのビルドが始まります今日はこの状態に持って行くまで
話にフォーカスしてみます
upstream ソースを import するには?
upstream ソースを import するには?
upstream のソースを持ってきて、Git リポジトリを作成することを考えると、
simple な場合
1. tarball を展開して import
2. upstream VCS import
調整が必要な場合
non-dfsg-free な部分を削除してから import
... でしょうか?
注意すべきは pristiner-tar を用いること、です
pristine-tar ?
gzip の圧縮率の違いなどから、upstream ブランチから生成された .tar.gz upstream の配布物と異なる事があ
りますpristine-tar によって、upstream tarball import する際にバイナリデルタを保存しておくことで、
upstream ブランチから tarball(.orig.tar.gz) を生成する際に、checksum の等しい tarball を生成することがで
きます
このバイナリデルタは pristine-tar ブランチに保存されます。もし忘れた場合には
$ pristine-tar commit foobar.tar.gz [upstream tag]
$ pristine-tar checkout ../foobar.tar.gz
の様にして後からコミットできますが、最初に import る際に忘れずにバイナリデルタを保存しておくのが良い
でしょうgit-import-orig コマンドにはオプションとして --pristine-tar があります。ごく稀に上手くバイナ
リデルタを生成できない tarball がある (らしい) ですが...
upstream VCS から import する
注意すべきは tarball も必ず import すること でしょうか? これは、履歴とともにバイナリデルタを保持するた
めに必要な作業です
また、リスさ tarball Tag が打てい (それるコミット) なの
履歴を適宜修正すると upstream のコミットを patch として管理しやすくなります
upstream VCS から import する (1)
幸運にも upstream Git だったら
$ git remote add upstream-repos [url]
$ git fetch upstream-repos
$ git co upstream && git merge upstream-repos
ok です
14
upstream VCS から import する (2)
Subversion の場合は git-svn を用います。毎度 rebase しながら作業することになるので、大変面倒ですが...
*
9
Subversion: 初回
$ git-svn init [url]
$ git svn fetch
$ git log ref/remotes/git-svn
$ git checkout -b upstream refs/remotes/git-svn
$ git push origin upstream:upstream
Subversion: 二回目以降
$ git config --remove-section svn-remote.svn 1>/dev/null 2>&1
$ git svn init [url]
$ git show-ref origin/upstream > \
‘git rev-parse-git-dir‘/refs/remotes/git-svn
tarball import するツール
以下では, tarball import するコマンド群についてまとめておきます
git-import-orig
git-buildpackage パッケージで提供
simple tarball import
(Option つければ) pristine-tar も実行
(あれば) 現状の master ブランチへ自動で merge して
タグも打ってくれる
一番 simple
必要な事は全てやってくれるので, これで十分な事が多い。
git-dpm import-new-upstream
git-dpm: git Debian package manager
動作は git-import-orig とほぼ同じ
VCS の履歴との対応や patch-queue ブランチ (後述) の生成/管理もしてくれる
調整が必要な場合 (1)
upstream の配布物に non-dfsg-free な部分があったりして調整が必要な場合は
upstream ブランチで non-dfsg-free な部分を削除/調整
new upstream version として merge/commit
tarball として repack した後に import/タグ打ち
なんて事をします。例えば
$ git checkout upstream
$ git merge -s recursive -X theirs [upstream tag]
もしくは
*
9
もっと良い方法ありませんかね?
15
$ git status -s | egrep ’^(DU|UA| U|UD)’ | cut -c4- | \
xargs git rm --ignore-unmatch DUMMY$$
$ git commit
とか?
uscan repack 用の hook script を使っているなら、それを実行したのち tarball として import する、の方が楽
かもしれません。
./debian をガシガシ書く/修正する
まあこれは良いですよね?
$ git branch
* master
pristine-tar
upstream
upstream のソースは全て Git リポジトリの upstream ブランチ
./debian での変更は master ブランチで
全ての変更は master 内で行なう
何をしたのかは git log で容易に追跡できる
patch も作成しやすい
となりますHappy Hacking!!
patch を扱うには?
source format 3.0 (quilt) では、upstream への変更点を quilt を用いてパッチで管理します
単純な方法
Git の事は忘れて quilt だけでパッチを作成 (もしくは debuild が走った際にパッチとして抽出) する、です
複雑な事は何もありませんが、VCS の恩恵を受けることもありません。
git を使う場合 (1)
逆に quilt を忘れて Git だけで patch を管理する方法ですdebuild 等で patch を生成し, ./debian/patches/
下を git で管理します。まあ VCS っぽく管理するなら 1 パッチ/1 コミットとして手動で管理するのでしょうか?
patch ブランチで
パッチだけ track するため branch を用意して、1 パッチ/1 ブランチ or 1 パッチ/1 コミットとして管理しま
。注意すべきは
quilt への export を行なうにはコミット履歴が綺麗でないといけない
1 パッチ/1 コミット
squash !! squash !! squash !!
今のところ 1-way rebase なので、upstream の更新をする度に作業が必要。
以下, 幾つかのコマンドについて述べます
topgit: a Git patch queue manager
コミット履歴をブランチで管理
パッチ間の依存関係も管理
16
便利だけど, やりすぎな気もしないでもない
patch-queue ブランチから quilt export したパッチは master ブランチにコミットしておく必要がある
gbp-pq
git-buildpackage で提供
git format-patch wrapper
1 パッチ/1 コミット, として patch を生成/取り込み
master rebase して使う
$ git checkout master ; git branch -D patch-queue
$ quilt pop -a
$ gbp-pq import
... 作業 ...
$ git checkout master ; gbp-pq export
git-dpm
パッチは一つのブランチで管理
1 パッチ/1 コミット
パッチは master ブランチに merge されたままで管理
パッチが当たった upstream ブランチを rebase
プライベートブランチの SHA1 ハッシュを./debian/.git-dpm に保存
gitpkg quilt export hook
1 パッチ/1 コミット, などという制限は無い
debian/source/git-patches に設定を書く
upstream/[UPSTREAM_REF]...patche-queue1/[DEBIAN_REF1]
upstream/[UPSTREAM_REF2]...topic1/[DEBIAN_REF2]
パッチはコミットされない
tag は再生成される
source package の生成
git-dpm
ビルド用の特定のコマンドは無い (dpkg-source -b とか)
gitpkg
pristine-tar, upstream ブランチから tarball を生成し source package をビルド
git-buildpackage
default. バイナリパッケージも作成する
git-pbuilder: pbuilder/cowbuilder を呼び出せる
タグを打ったり.
17
まとめ (?)
いろが増、結局 git-buildpackage 番簡/便/低い
という印象ですworkflow が他の vcs-buildpackage と似ているから、でしょうか。
また git-dpm/gitpkg workflow/patch-queue の自由度は高い (けれど, 複雑になりがち)、な印象を受けます
git-dpm パッケージは提供するコマンドが多くて、
コマンドが多くて, ちょっと敷居が高い (かも)
一番「git らしく」作業できる (らしい)
ですね。また、
gitpkg
hook での拡張/カスタマイズが容易.
リポジトリのレイアウトも固定されていない
です
18
51 関西 Debian 勉強会 2011 09
6 今後の予定
Debian JP
6.1 52 回関西 Debian 勉強会
52 回関西 Debian 勉強会は、10 23 () に福島区民センターで開催する予定です。発表内容については未
定ですので、みなさまの発表をお待ちしております
6.2 53 回関西 Debian 勉強会 in KOF 2011
11 西 Debian 11 12 () 西 2011 てセッション
ます
Debian Updates」という毎度タマムシ色のお題で話者は佐々木の予定です
19
51 関西 Debian 勉強会 2011 09
7 メモ
20
21
22
関西Debian 勉強会
Debian 勉強会資料
2011 09 25 初版第 1 刷発行
関西 Debian 勉強会 (編集・印刷・発行)
23